#ifndef __LUNA_ISoundFactory_h__
#define __LUNA_ISoundFactory_h__

#include "LUNA_Common.h"

namespace LUNA
{	
	class LunaExport ISoundFactory
	{
		ISoundFactory();

	public:
		ISoundFactory( SoundManager &soundManager, const std::string &type );
		virtual ~ISoundFactory();

		virtual ISound *createSound( const std::string &filename ) = 0;
		virtual void destroySound( ISound *sound ) = 0;

		const std::string &getFactoryType() const;

	protected:
		SoundManager &mSoundManager;

	private:
		const std::string mFactoryType;
	};
}

#endif